package com.xqls.service;

import java.util.Date;
import java.util.List;
import java.util.Map;

import com.xqls.dal.model.FlowRecord;

public interface FlowRecordService {
	/**
	 * 查询每日最大累积流量与最小流量
	 * @param map
	 * @return
	 */
	public Map<String, Object> selDayCumulativeFlow(Map<String,Object> map);
	/**
	 * 插入多条流量记录
	 * @param flowRecord
	 * @return
	 */
	public boolean save(double cumulative_flow,String enterprise_no,double instantaneous_flow ,Date date);
	/**
	 * 通过条件查询记录
	 * @param map   日期和设备编号，所属模块编号
	 * @return
	 */
	public List<Map<String,Object>> selMinRecordByMap(Map<String,Object> map);
	/**
	 * 通过条件查询小时记录
	 * @param map    日期和设备编号，所属模块编号
	 * @return
	 */
	public List<Map<String,Object>> selHourRecordByMap(Map<String,Object> map);
	
	/**
	 * 通过条件查询日记录
	 * @param map    日期和设备编号，所属模块编号
	 * @return
	 */
	public List<Map<String,Object>> selDayRecordByMap(Map<String,Object> map);
	/**
	 * 通过条件查询月统计
	 * @param map    日期和设备编号，所属模块编号
	 * @return
	 */
	public List<Map<String,Object>> selMonthRecordByMap(Map<String,Object> map);
	/**
	 * 通过条件查询年统计
	 * @param map    日期和设备编号，所属模块编号
	 * @return
	 */
	public List<Map<String,Object>> selYearRecordByMap(Map<String,Object> map);
	/**
	 * 查询在这个月之前的最大累计流量
	 * @param map
	 * @return
	 */
	public Map<String,Object> selectLastMaxBeforeThis(Map<String,Object> map);
	/**
	 * 年统计列查询
	 * @param map
	 * @return
	 */
	public Map<String,Object> selectYearColumn(Map<String,Object> map);
	
	/**
	 * 传入一个日期，将流量表中每月的最大流量插入month表中
	 * @param map
	 * @return
	 */
	public boolean insertToMonth(Map<String, Object> map);
	/**
	 * 传入一个日期，将流量表中每天最大的流量插入day表中
	 * @param map
	 * @return
	 */
	public boolean insertToDay(Map<String, Object> map);
	/**
	 * 从天表中查最大的累计流量
	 * @param map
	 * @return
	 */
	public Map<String, Object> selectMapFromDayFlow(Map<String, Object> map);
	
    List<Map<String, Object>> getMinuteListByMap(Map<String, Object> map);
    
    List<Map<String, Object>> getHourListByMap(Map<String, Object> map);
    
    List<Map<String, Object>> getDayListByMap(Map<String, Object> map);
    
    List<Map<String, Object>> getMonthListByMap(Map<String, Object> map);
    
    List<Map<String, Object>> getYearListByMap(Map<String, Object> map);
    
    FlowRecord selflow(String deviceNo,String closeMonth);
	
}
